package com.veer.shop.mapper;

import java.util.List;
import org.apache.ibatis.annotations.Param;
import com.veer.shop.param.ProductListParam;
import com.veer.shop.pojo.ImportProductData;
import com.veer.shop.pojo.Product;
import com.veer.shop.pojo.ProductDetail;
import com.veer.shop.pojo.ProductStock;
import com.veer.shop.pojo.SimpleProduct;
import com.veer.shop.pojo.SpecBind;
import com.veer.shop.result.ProductResult;

/**
 * 商品数据接口访问层
 * 
 * @author WangBin
 * 2020年9月25日-下午2:30:41
 */
public interface ProductMapper {
	
	// 查询所有的商品
    List<ProductResult> getList(ProductListParam param);
	
	// 根据ID查询商品
    SimpleProduct getById(@Param("product_id") Integer productId);
	
	// 更新商品
    Integer update(Product product);
	
	// 新增商品
    Integer insert(Product product);
	
	// 新增商品详情
    Integer insertDetail(ProductDetail detail);
	
	// 新增商品规格值绑定
    Integer insertSpecBind(SpecBind specBind);
	
	// 删除商品
    Integer delete(@Param("product_id") Integer productId);
	
	// 判断商品是否存在,商品名称、商品编号、商品ID
    Integer isProductExist(@Param("product_id") Integer productId, @Param("product_bn") String productBn, @Param("product_name") String productName);
	
	// 判断商品库存信息是否存在
    Integer isStockExist(@Param("product_id") Integer productId);
	
	// 检测商品名称是否存在
    Integer checkProductBn(@Param("product_id") Integer productId, @Param("product_bn") String product_bn);
	
	// 插入导入商品
    Integer insertImportProduct(ImportProductData importProductData);
	
	// 更新导入商品
    Integer updateImportProduct(ImportProductData importProductData);
	
	// 插入商品库存
    Integer insertStock(ProductStock productStock);
	
	// 更新商品库存
    Integer updateStock(ProductStock productStock);
}
